<?php
namespace Admin\Controller;
use Think\Controller;

class AdminController extends Controller {

	function __construct() {
		//继承父类
		parent::__construct();

		//判断登录状态
		if(!D('Admin')->islogin()){//未登录
			$this->error('您尚未登录，请先登录！',U('login/login'),3);
		}
		//判断操作是否授权
		if(!D('Admin')->isoperate(CONTROLLER_NAME,ACTION_NAME)){//未授权
			$this->error('您尚无此操作权限！',U('index/welcome'),3);
		}
    }

	//空方法，防止报错
	public function _empty(){
        $this->index();
    }
	
	//管理员列表
    public function index(){
		$where="1 ";
		$info=I("info");
		if ($info){
			@extract($info);
			if($keyword){$where.="and username like '%$keyword%' ";$this->assign('keyword',$keyword);}
		}

		$admin=M('Admin');
		// 查询满足要求的总记录数
		$count      = $admin->where($where)->count();
		$Page       = new \Think\Page($count,15);
		//分页跳转的时候保证查询条件
		if($info){
			foreach($info as $key=>$val) {
				$Page->parameter['info['.$key.']']   =   urlencode($val);
			}
		}
		$pageshow   = $Page->adminshow();
		// 进行分页数据查询
		$listinfo = $admin->where($where)->order('admin_id desc')->limit($Page->firstRow.','.$Page->listRows)->select();
		foreach($listinfo as $k=>$v){
			$groupinfo=M("Admingroup")->where("group_id=".$v['role'])->find();
			$listinfo[$k]['group_name']=$groupinfo['group_name'];
			unset($groupinfo);
		}
		$this->assign('listinfo',$listinfo);
		$this->assign('pageshow',$pageshow);

		$this->display();
    }

	//管理员用户名存在性
	public function existadmin(){
		$param=I("param");
		if(!$param){
			$status="n";
			$info="参数不正确";
		}else{
			$count=M("Admin")->where("username = '".$param."'")->count();
			if($count){//存在，验证失败
				$status="n";
				$info="此用户名已存在";
			}else{//不存在，验证成功
				$status="y";
				$info="此用户名不存在，可以增加";
			}
		}
		$this->ajaxReturn(array('status'=>$status,'info'=>$info));
	}

	//添加管理员
    public function addadmin(){
		if (IS_POST){
			$info=I("info");
			$flag=D("Admin")->addadmin($info);
			if($flag){
				$this->success('添加管理员成功！',U('admin/index'),3);
			}else{
				$this->error('添加管理员失败！',U('admin/index'),3);
			}
		}else{
			//管理员组
			$groupinfo = M('Admingroup')->order('group_id desc')->select();
			$this->assign('groupinfo',$groupinfo);
			$this->display();
		}
    }

	//编辑管理员
    public function editadmin(){
		$admin_id=I("get.admin_id");
		if (IS_POST){
			$info=I("info");
			$flag=D("Admin")->editadmin($admin_id,$info);
			if($flag){
				$this->success('编辑管理员成功！',U('admin/index'),3);
			}else{
				$this->error('编辑管理员失败！',U('admin/index'),3);
			}
		}else{
			$admininfo=M("Admin")->where("admin_id=".$admin_id)->find();
			$this->assign('admininfo',$admininfo);
			//管理员组
			$groupinfo = M('Admingroup')->order('group_id desc')->select();
			$this->assign('groupinfo',$groupinfo);

			$this->display();
		}
    }

	//修改密码
    public function pswadmin(){
		$admin_id=I("get.admin_id");
		if (IS_POST){
			$info=I("info");
			$flag=D("Admin")->pswadmin($admin_id,trim($info['oldpassword']),trim($info['newpassword']));
			if($flag){
				$this->success('密码修改成功！',U('admin/index'),3);
			}else{
				$this->error('密码修改失败！',U('admin/index'),3);
			}
		}else{
			$admininfo=M("Admin")->where("admin_id=".$admin_id)->find();
			$this->assign('admininfo',$admininfo);
			$this->display();
		}
    }

	//删除管理员
	public function deladmin(){
		$admin_id=I("get.admin_id");
		M('Admin')->where('admin_id='.$admin_id)->delete();
		$this->success('管理员删除成功！',U('admin/index'),3);
	}

}
